<?php
/**
 * Concord CRM - https://www.concordcrm.com
 *
 * @version   1.3.4
 *
 * @link      Releases - https://www.concordcrm.com/releases
 * @link      Terms Of Service - https://www.concordcrm.com/terms
 *
 * @copyright Copyright (c) 2022-2023 KONKORD DIGITAL
 */

namespace Modules\Contacts\Database\State;

use Illuminate\Support\Facades\DB;

class EnsureSourcesArePresent
{
    public array $sources = [
        '自然搜索',
        '付费搜索',
        '电子邮件营销',
        '社交媒体',
        '推介', //（来自其他网站或email的友情链接…） 有人从另一个博客的超链接点击到您的网站将被视为推荐流量。
        '其它营销活动',
        '直接流量', //直接流量是指不来自推荐网站的任何流量;访问者直接到达您的网站，而无需点击其他网站的链接。
        '线下来源',
        '付费社交',
        'Web表单',
        '其它' //如果您有任何不符合上述类别的流量，或已被特别标记为“其他”，它将属于此流量类别。
    ];

    public function __invoke(): void
    {
        if ($this->present()) {
            return;
        }

        foreach ($this->sources as $source) {
            \Modules\Contacts\Models\Source::create([
                'name' => $source,
                'flag' => $source === 'Web表单' ? 'web-form' : null,
            ]);
        }
    }

    private function present(): bool
    {
        return DB::table('sources')->count() > 0;
    }
}
